//
// Created by lfm on 2025/3/16.
//

#ifndef STUDENT_MANAGEMENT_H
#define STUDENT_MANAGEMENT_H

#include "Student.h"
#include <algorithm>
#include <memory>
#include <string>
#include <vector>
class Management
{
    enum Operator
    {
        Clear,
        Show,
        Insert,
        Remove,
        Modify,
        Search,
        Sort,
        Exit
    };

  public:
    ~Management();
    Management();
    // 显示菜单选项
    void menu();
    // 根据用户的选择运行相应的操作
    bool Run();

    // 从文件读取学生数据
    bool readFile(const std::string &fileName);
    // 将学生数据写入文件
    void writeFile(const std::string &fileName);

    // 显示所有学生信息
    void show();
    // 插入新的学生信息
    void insert();
    // 移除指定的学生信息
    void remove();
    // 修改指定的学生信息
    void modify();
    // 搜索学生信息
    void search();
    // 对学生信息进行排序
    void sort();

  private:
    std::string tableHeader; // 数据头
    std::vector<Student *> stu_vec;
};

#endif // STUDENT_MANAGEMENT_H